import { IParam } from '../../common';

/**
 * 代码项
 */
export interface ICodeListItem {
	/**
	 * 值
	 */
	value: string | number;

	/**
	 * 父值
	 */
	pvalue: string | number;

	/**
	 * 标题
	 */
	text: string;

	/**
	 * 标题语言资源标识
	 */
	textResTag?: string;

	/**
	 * 图标
	 */
	icon?: string;

	/**
	 * 代码名
	 */
	codeName: string;

	/**
	 * 样式表
	 */
	textClass?: string;

	/**
	 * 数据
	 */
	data?: IParam;

	/**
	 * 是否禁用
	 */
	disable: boolean;

	/**
	 * 颜色
	 */
	color?: string;
}

/**
 * 代码表
 */
export interface ICodeList {
	/**
	 * 名称
	 */
	name: string;

	/**
	 * 代码名称
	 */
	codeName: string;

	/**
	 * 代码表标识
	 */
	codeListTag: string;

	/**
	 * 代码表类型
	 */
	codeListType: string;

	/**
	 * 是否启用缓存
	 */
	isEnableCache: boolean;

	/**
	 * 缓存时长
	 */
	cacheTimeout: number;

	/**
	 * 默认排序方向
	 */
	minorSortDir?: string;

	/**
	 * 排序属性codeName
	 */
	minorSortAppDEField?: string;

	/**
	 * 预定义类型
	 */
	predefinedType?: string;

	/**
	 * 应用实体codeName
	 */
	appDataEntity?: string;

	/**
	 * 应用数据集合codeName
	 */
	appDEDataSet?: string;

	/**
	 * 文本属性codeNmae
	 */
	textAppDEField?: string;

	/**
	 * 值属性codeName
	 */
	valueAppDEField?: string;

	/**
	 * 父值属性codeName
	 */
	pValueAppDEField?: string;

	/**
	 * 禁用属性codeName
	 */
	disableAppDEField?: string;

	/**
	 * 图标路径属性codeName
	 */
	iconPathAppDEField?: string;

	/**
	 * 图表样式属性codeName
	 */
	iconClsAppDEField?: string;

	/**
	 * 无值显示内容
	 */
	emptyText: string;

	/**
	 * 无值显示内容语言资源标识
	 */
	emptyTextResTag?: string;

	/**
	 * 代码项集合
	 */
	items?: ICodeListItem[];
}

/**
 * 代码表响应结果
 */
export interface ICodeListResult {
	/**
	 * 是否成功
	 */
	ok: boolean;

	/**
	 * 响应数据
	 */
	data: ICodeListItem[];
}
